﻿/*Defualt fragment shader: Implementa la funcionalidad
estándar del pipeline:

- Interpolación baricéntrica con corrección de perspectiva de
colores de vértices (viene precalculado en gl_Color)
- Texture mapping sin interpolación bilineal

Input:
- gl_Color: El color interpolado baricentricamente con correccion de perspectiva
			(attribute) 
- gl_TexCoord[0]: La coordenada de textura interpolada baricentricamente con 
			correccion de perspectiva (varying)

Output:
- gl_FragColor: El color del fragmento (special type)
- gl_FragDepth: El valor de profundidad (z-buffer) del fragmento (special type)
*/

uniform sampler2D textureSampler;	//Necesaria para muestrear textura

//TEST: modificar interpolacion
//flat in vec4 flatColor;
//noperspective in vec4 noPerspectiveColor;
//noperspective in vec4 noPerspectiveTexCoords;

void main (void) 
{
	vec4 color;

	//INTERPOLACION BARICENTRICA CON CORRECCION DE PERSPECTIVA
	//gl_Color contiene el valor interpolado de los colores
	//generados en el Vertex Shader
	color = gl_Color;

	//TEST: modificar interpolacion
	//color = flatColor;
	//color = noPerspectiveColor;

	//TEXTURE MAPPING
	//Se muestrea la textura 2D obteniendo el valor de color
	//asociado a la coordenada gl_TexCoord[0]
	color *= texture2D(textureSampler, gl_TexCoord[0].st);

	//TEST: modificar interpolacion
	//color *= texture2D(textureSampler, noPerspectiveTexCoords.st);

	//gl_FragColor = vec4(1.0);
	gl_FragColor = color;

	//TEST: modificar z-buffer
	//gl_FragDepth = (0.5);
}



